Systems of non-linear equations
Systems of linear equations are the subject of linear algebra and there are foolproof methods for solving systems of linear equations. Systems of algebraic equations that include non-linear terms such as quadratic or cubic equations or special functions like logarithm or sine and cosine are more difficult to solve. Maple has the ability to solve such systems including non-linear equations but it often requires some careful analysis by you to get the right answers.
The approach for non-linear systems of equations is the same as for linear systems. First try to use the
solve
command. However, unlike linear systems, there are situations with non-linear equations where the
solve
command will return a result with one or more RootOf
terms or may even
fail to return any result at all.
If the solve
command returns a symbolic result that includes one or more RootOf
terms,
then try to solve using the additional symbolic algorithms that allvalues
knows.
Do this by naming the solution of the solve
command and passing that name as the
argument of the allvalues
command.
If the solve
command fails to return a symbolic result at all or the allvalues
command doesn't work either, then try to solve the system numerically by using the fsolve
command.
A word of caution about solving numerically in Maple for non-linear equations.
If there are more than one root, then fsolve
may find a root, but fail to find all roots.
The correct approach is to plot the equations using implicitplot
and to
visually confirm that a desired solution exists. Use the figure to estimate the location of
all desired roots. Then use the fsolve
command individually to find each of the roots.
The fsolve
command allows you to enter a range of x and y values that
contains the desired intersection point. The numerical solution method is a successive approximation method
and it only finds an approximation, not an exact solution.
The range must be reasonably close to the final answer for the method to find the correct result.
When there are multiple roots the method finds one of them and then stops looking.
So the command must be executed separately to find each root.